package agents;

import selectors.StrategySelector;
import strategies.Strategy;
import base.Environment;

/**
 * An agent that uses a fixed strategy.
 * <p>
 * StaticAgent has multiple strategies available artificially inserted.
 */
public class StaticAgent extends Agent {

	public StaticAgent(int quota, Environment env,
			           StrategySelector selector, Strategy... strategies) {
		super(quota, env, selector, strategies);
	}
	
	public StaticAgent(int id, int quota, Environment env,
					   StrategySelector selector, Strategy... strategies) {
		super(id, quota, env, selector, strategies);
	}
	
	/**
	 * Static agents do not vary their quota.
	 */
	@Override
	public void updateQuota() {
		clearRecords();
	}
	
	/**
	 * Static agents do not vary their targets.
	 */
	public void updateStrategiesTargets() {
		return;
	}
	
	/**
	 * Static agents do not vary their paths.
	 */
	public void updateStrategiesPaths() {
		return;
	}
}
